* TODO.md audited against the tree - #10
Conversation
…ded ticks removed - checkboxes re-verified one by one against sources, workflows and tests instead of the 2025-09 snapshot - newly true: drag & drop, live target-path preview, batch rename, search and filters, metadata caches, cancellation, duplicate detection tier, benchmarks, headless UI tests, cross-platform CI matrix, coverage, release + NuGet automation, API/architecture/developer docs, video, faces, geo mapping, AI auto-tagging, CLI --verbose - no longer true: the integration-test tier and the end-to-end import workflow test do not exist (only Unit/ plus temp-dir file I/O) - partial items keep their box open and now name what is missing (MaxParallelism has no consumer, no ETA in progress, no global undo, no library thumbnail grid, hardcoded date-source priorities) - UI section retitled Avalonia; Settings dialog and settings persistence notes match SettingsWindow/SettingsService; CLI gains its metadata, faces, regions and models subcommands plus --preserve/--duplicates - dated summary of what landed since 2025-09-10 added at the top
The sky segmenter, healing brush, write-back queue and thumbnail pre-cache all exist in Core, so listing them as planned understated the project. The sun/moon item stays open because only the calculator and the arrow data landed - no map view consumes them - and photometric modelling has not been started.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ad88a34cc7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - **Geo**: reverse geocoding, elevation, geofences, KML export, triangulation, photo resection, sun/moon calculations, GPX geotagging, world map, map bookmarks. | ||
| - **Compositing**: HDR merge, cylindrical/spherical/tripod panorama stitching, scanned-piece stitching, video frame extraction. | ||
| - **Library tooling**: duplicates, burst stacks, smart albums, keyword hierarchy, memories, quality flagging, batch rename, batch date shift, search with saved filters, calendar, slideshow, compare grid. | ||
| - **Metadata write path**: XMP sidecars, JPEG/PNG/TIFF/WebP container writers, atomic writes, crash-safe write-back queue. |
There was a problem hiding this comment.
Qualify the write-back queue as not yet integrated
When a UI or CLI metadata write is interrupted by a crash, no pending edit can be recovered: repository-wide production references show that WriteBackQueue is never constructed, started, or enqueued, while the edit paths instantiate CompositeMetadataWriter directly; WriteQueueDialog merely accepts a queue instance and is itself never opened. Calling the crash-safe queue “landed” therefore overstates the reliability users receive and hides the remaining integration work.
Useful? React with 👍 / 👎.
| - [ ] Web interface | ||
| - [ ] Mobile app companion | ||
| - [ ] AI-powered auto-tagging | ||
| - [x] AI-powered auto-tagging (CLIP encoders + `AutoKeywordTagger` + auto-keyword scan window) |
There was a problem hiding this comment.
Keep AI auto-tagging open until tokenization is wired
For the normal auto-keyword UI flow, AutoKeywordScanWindow constructs OnnxClipTextEncoder without supplying a tokenizer, so it uses WhitespaceByteTokenizer; that class explicitly states it is only a test placeholder and that a real SigLIP model requires a matching SentencePiece tokenizer. Consequently, downloading the registered SigLIP models can produce failed or meaningless text embeddings rather than useful tags, so this user-facing feature should not be marked complete yet.
Useful? React with 👍 / 👎.
A year of work landed without the checklist moving. Every box re-verified against sources, workflows and tests.
--verbose.Unit/), and nothing exercisesImportManager.ProcessDirectoryAsync, so the end-to-end import workflow test does not exist.ImportSettings.MaxParallelismhas no consumer (import is still serial), progress has no ETA, undo/redo is develop-history + mask only, the library grid has no thumbnail view, date-source priorities are hardcoded.PhotoMetadatashipped asFullMetadata,IMetadataExtractorasIMetadataReader; both noted rather than silently accepted.SettingsWindow/SettingsService; CLI gains itsmetadata/faces/regions/modelssubcommands and--preserve/--duplicates.Markdown only, no code touched.
Noticed, not touched: README's "Planned Features" list is stale the same way — the healing brush, crash-safe write-back queue, thumbnail pre-cache and ONNX sky mask it lists as planned are all shipped.